Fox's Git Mirrors
π Files β’ βΈ Work (0) β’ πΉ Commits (3) β’ β Branches (1) β’ β Tags (0) β’ β₯ Thanks (0)
>π‘ LXMF Signal Echo Bot
β LXMF Bot for Reticulum β Echo, Signal Stats & Network Info
Author: F (Reticulum Italia) β Based on MeteoBot v1.0
GitHub: github.com/fr33n0w/meteobot
π Description
Signal Echo Bot is an LXMF bot for the Reticulum network offering:
βββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Command β Description β
βββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π ECHO β Echoes back the received message with latency and hops β
β πΆ SIG β Shows RSSI, SNR and Link Quality (with RNode LoRa) β
β π STATUS β Full report with all available information β
β β HELP β Command guide β
βββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The bot automatically creates a persistent RNS identity (saved to disk) and listens on Reticulum as an LXMF peer reachable from any compatible client.
π§© Requirements
β’ π Python 3.7+
β’ π‘ Reticulum Network Stack (RNS) already installed and configured
β’ βοΈ LXMF (included with RNS or installable separately)
Install dependencies:
T282828
pip install rns
If LXMF is not included:
T282828
pip install lxmf
β β οΈ Note: the bot requires Reticulum to be already configured on the system (config files in
β T383838~/.reticulum or T383838/etc/reticulum). For RNode LoRa, configure the interface in the Reticulum
β configuration file.
βοΈ Installation
1. Create the directory and copy the file:
T282828
mkdir ~/rns_sig_bot
cd ~/rns_sig_bot
# copy rns_sig_bot.py here
2. Verify RNS is installed:
T282828
python3 -c "import RNS; print(RNS.__version__)"
3. Verify LXMF is available:
T282828
python3 -c "import LXMF; print('OK')"
π Launch as User (Interactive Mode)
Launch the bot in interactive mode with guided setup:
T282828
cd ~/rns_sig_bot
python3 rns_sig_bot.py
The bot will show an intro screen and ask for:
β’ π·οΈ Bot display name
β’ β±οΈ Auto-announce interval (seconds)
β’ π° Incoming message stamp cost (T3838380 = free)
Finally it will display the bot's LXMF address, visible to all clients on the Reticulum network.
β π To exit: press T383838Ctrl + C
π€ Launch as User (Service Mode, No Prompts)
To launch the bot without interaction (e.g. from T383838screen, T383838tmux, or a script):
T282828
cd ~/rns_sig_bot
python3 rns_sig_bot.py --service --display_name "Signal Echo Bot" --announce_time 300 --stamp_cost 0
Available parameters
βββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β Parameter β Description β
βββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ€
β T383838--display_name "Bot Name" β Display name on the network β
β T383838--announce_time 300 β Seconds between auto-announces β
β T383838--stamp_cost 0 β Stamp cost (T3838380-256, T3838380 = disabled) β
β T383838--identity ./rns_sig_bot_identity β Path to persistent identity file β
β T383838--storage ./tmp_rns_sig_bot β LXMF storage path β
β T383838--service β Enable service mode (no prompts) β
βββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββ
π₯οΈ Launch as systemd Service (Auto-Start on Boot)
1. Create the service file:
T282828
sudo nano /etc/systemd/system/rns_sigbot.service
2. Paste the following content (adjust T383838User and T383838WorkingDirectory):
T282828
[Unit]
Description=LXMF Signal Echo Bot
After=network.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/rns_sig_bot
ExecStart=/usr/bin/python3 /home/pi/rns_sig_bot/rns_sig_bot.py --service --display_name "Signal Echo Bot" --announce_time 300 --stamp_cost 0
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
3. Reload systemd and enable the service:
T282828
sudo systemctl daemon-reload
sudo systemctl enable rns_sigbot
sudo systemctl start rns_sigbot
4. Check status:
T282828
sudo systemctl status rns_sigbot
sudo journalctl -u rns_sigbot -f
5. Useful commands:
T282828
sudo systemctl stop rns_sigbot # Stop the service
sudo systemctl restart rns_sigbot # Restart the service
sudo systemctl disable rns_sigbot # Disable auto-start
π¬ Available Commands
From any LXMF client (Sideband, NomadNet, Terminal, etc.) send:
βββββββββββββββ¬βββββββββββ¬βββββββββββββββββββββββ
β Command β Alias β Action β
βββββββββββββββΌβββββββββββΌβββββββββββββββββββββββ€
β T383838echo <text> β T383838e <text> β π Echo the message β
β T383838sig β T383838s β πΆ Signal statistics β
β T383838status β T383838st β π Full report β
β T383838help β T383838h β β Command guide β
βββββββββββββββ΄βββββββββββ΄βββββββββββββββββββββββ
β βΉοΈ Note: the remote client can be any LXMF-compatible application, not just Sideband. Works with
β NomadNet, custom LXMF clients, etc.
πΆ Signal Stats (RSSI / SNR / Q)
Signal values are available ONLY when the bot is connected to Reticulum via an RNode LoRa interface. On TCP/IP, AutoInterface or other non-radio interfaces, values will be T383838N/A.
The displayed signal is INBOUND to the bot: how the bot "hears" the remote node that sent the message.
π Generated Files
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β File / Directory β Description β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ€
β T383838rns_sig_bot_identity β Persistent identity private key β
β T383838./tmp_rns_sig_bot/ β LXMF storage (messages, cache, etc.) β
ββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ
π οΈ Troubleshooting
βββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Issue β Solution β
βββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β T383838ModuleNotFoundError: No module named 'RNS' β β‘οΈ T383838pip install rns β
β T383838ModuleNotFoundError: No module named 'LXMF' β β‘οΈ T383838pip install lxmf β
β RSSI/SNR always T383838N/A β β‘οΈ Normal without RNode LoRa. Connect an RNode viβ¦ β
β Hops = T383838Unknown β β‘οΈ Normal if sender is direct or no transport is β¦ β
β Bot does not appear in clients β β‘οΈ Verify Reticulum is running (T383838rnsd or master inβ¦ β
βββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π License
Based on LXMF Meteo Bot v1.0 by F, Reticulum Italia.
Open source code. Modify and distribute freely. π
<div align="center">
Made with β€οΈ for the Reticulum network π‘
</div>
Served by rngit 1.5.0 - Generated in 0.05s